<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/model/DAO/DAOManager.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/model/Service/Service.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Person.php';
/**
 * Класс, отвечающий за работу с сотрудниками
 */
class EmployeeService extends Service {

	protected $personDAO;
	public function __construct($daoManager){
		parent::__construct($daoManager);
		parent::createDAO("EmployeeDAO");
		$this->personDAO = $this->daoManager->createDAO("PersonDAO");
	}

	/**
	 * Созранить сотрудника
	 * @param Employee $employee "Сотрудник", которого хотим сохранить
	 */
	public function save($employee){
		if($employee->getIdentoty() == null){
			return $this->dao->create($employee);
		}else{
			return $this->dao->update($employee);
		}
	}

	/**
	 * Прочитать сотрудника
	 * @param int $identity Идентефикатор сотрудника
	 */
	public function read($identity){
		$emp = $this->dao->read($identity);
		$empl->setPerson($this->personDAO->read($emp->getPerson()->getIdentity()));
		if($empl->getPerson() !== null) {
			$posts = $person->getPosts();
			foreach($posts as $post) {
				if($post->getIdentity() == (int)$identity) {
					return $post;
				}
			}
		}
		return null;
	}

	/**
	 * Удалить сотрудника
	 * @param int $identity Идентефикатор сотрудника
	 */
	public function delete($identity){
		return $empl = $this->dao->delete($identity);
	}

	/**
	 * Получить список должностей сотрудника
	 * @param Person $person Сотрудник
	 */
	public function getPersonPosts(Person $person){
		return $this->dao->getPersonPosts($person);
	}
}
?>